# Transition channel publication lifecycle

Transitions a product channel publication to a different lifecycle state.

Endpoint: PATCH /v1/products/{productUuid}/publications/{publicationUuid}/actions/lifecycle
Version: 1.1.0
Security: Bearer

## Path parameters:

  - `productUuid` (string, required)
    The unique identifier of the product.

  - `publicationUuid` (string, required)
    The unique identifier of the product channel publication to transition.

## Request fields (application/json):

  - `transition` (string, required)
    The lifecycle transition to apply.
    Enum: "publish", "unpublish"

## Response 200 fields (application/json):

  - `uuid` (string, required)
    Unique identifier for this product channel publication.

  - `productUuid` (string, required)
    Identifier of the product this publication belongs to.

  - `channelUuid` (string, required)
    Identifier of the channel this publication targets.

  - `createdAt` (string, required)
    Timestamp when this publication was created.
    Example: "2025-11-23T14:15:22.123456Z"

  - `updatedAt` (string, required)
    Timestamp when this publication was last modified.
    Example: "2025-11-23T14:15:22.123456Z"

  - `status` (string, required)
    Current lifecycle status of this publication.
    Enum: "draft", "published", "unpublished"

## Response 401 fields (application/problem+json):

  - `type` (string,null)

  - `title` (string,null)

  - `status` (integer,null)

  - `detail` (string,null)

  - `instance` (string,null)

## Response 403 fields (application/problem+json):

  - `type` (string,null)

  - `title` (string,null)

  - `status` (integer,null)

  - `detail` (string,null)

  - `instance` (string,null)

  - `correlationId` (string,null)

## Response 404 fields (application/problem+json):

  - `type` (string,null)

  - `title` (string,null)

  - `status` (integer,null)

  - `detail` (string,null)

  - `instance` (string,null)

  - `correlationId` (string,null)

## Response 422 fields (application/problem+json):

  - `errors` (array)

  - `errors.code` (string, required)

  - `errors.message` (string, required)

  - `type` (string,null)

  - `title` (string,null)

  - `status` (integer,null)

  - `detail` (string,null)

  - `instance` (string,null)

  - `correlationId` (string,null)

## Response 500 fields (application/problem+json):

  - `type` (string,null)

  - `title` (string,null)

  - `status` (integer,null)

  - `detail` (string,null)

  - `instance` (string,null)

  - `correlationId` (string,null)


